package com.hua.util;

import com.google.gson.Gson;

/**
 * 类名: CommGsonUtil
 * 作者: 蒋剑华
 * 创建时间: 2025/11/6 17:27
 * 类描述：json序列化和反序列化的工具
 */
public enum CommGsonUtil {
    INSTANCE;

    //创建Gson对象，只创建一次
    private final Gson gson = new Gson();

    /**
     * 方法名：toJson
     * 作者：蒋剑华
     * 创建时间：2025/11/6 17:57
     * 参数描述：@paramStr Object，一般是把对象传进来
     * 方法描述：传入一个对象，返回一个json对象
     * 返回类型：返回一个json对象 类型为String类型
     */
    public String toJson(Object paramStr) {
        return gson.toJson(paramStr);
    }

    /**
     * 方法名：formJson
     * 作者：蒋剑华
     * 创建时间：2025/11/6 18:03
     * 参数描述：@json String类型 json对象
     *         @clazz Class类型 class对象
     * 方法描述：把json转换成对应的对象类
     * 返回类型：T 也就是你传进clazz来什么类型，返回就是什么类型
     */
    public <T> T formJson(String json, Class<T> clazz) {
        // 引用参数名与定义一致（都是 clazz）
        return gson.fromJson(json, clazz);
    }


}
